package com.thinvent.recommend.manager.manager;

import com.thinvent.recommend.manager.dto.RecommendedDocDTO;

import java.util.List;

/**
 * 推荐数据查询 Manager
 * <p>基于用户历史行为向量，在 Elasticsearch 上做 KNN 向量检索，返回推荐结果</p>
 */
public interface RecommendationManager {
    /**
     * 获取指定用户的推荐文档列表
     *1 ·
     * @param userId 用户业务 ID
     * @return 推荐的文档列表，每项包含文件 ID 和相似度得分
     */
    List<RecommendedDocDTO> getUserRecommendations(String userId);

    /**
     * 新增：基于用户岗位关键词的推荐
     */
    List<RecommendedDocDTO> recommendByUserPosition(String userId);

    /**
     * 根据用户所在部门的历史操作（编辑/预览/下载）推荐文档
     */
    List<RecommendedDocDTO> recommendByDeptHistory(String userId);
}
